package com.fintech.datagroud.dao.moxie;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.fintech.third.model.credit.BRDeviceInfo;
import com.fintech.third.model.credit.CallCountDto;
import com.fintech.third.model.credit.CreditReportPortrait;
import com.fintech.third.model.credit.MxAlipayAddressDto;
import com.fintech.third.model.credit.MxAlipayBankDto;
import com.fintech.third.model.credit.MxAlipayUserInfoDto;
import com.fintech.third.model.credit.MxOperatorReportDto;
import com.fintech.third.model.credit.PieChartDto;
import com.fintech.third.model.credit.YDDeviceInfoDto;
import com.fintech.third.model.credit.YDDeviceLinkDto;
import com.fintech.third.model.credit.YDFeatureDto;
import com.fintech.third.model.credit.YDIndustryLendBehaviorDto;
import com.fintech.third.model.credit.YDLendBehaviorDto;
import com.fintech.third.model.credit.YDUserInfoDto;
import com.fintech.third.model.credit.ZXPersonalLoanApplyInfo;
import com.fintech.third.model.credit.ZXPersonalLoanOrderInfo;
import com.fintech.third.model.credit.ZXpersonalLoanOrderDetailsInfo;
import com.fintech.third.model.moxie.carriesv2.MXCheckSearchInfo;
import com.fintech.third.model.moxie.dataprovide.IntMxCallDetails;
import com.fintech.third.model.shzx.EdcZxPersonalNewCredit;

public interface IntMxCallDetailsMapper {
    int deleteByPrimaryKey(Long id);

    int insert(IntMxCallDetails record);

    int insertSelective(List<IntMxCallDetails> list);

    IntMxCallDetails selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(IntMxCallDetails record);

    int updateByPrimaryKey(IntMxCallDetails record);
    
    List<PieChartDto> selectCallTypePercent(String loanId);
    
    List<PieChartDto> selectCallLocationPercent(String loanId);
    
    List<PieChartDto> getCallCountChart(Map<String,String> param);
    
    List<PieChartDto> getCallCountWithMonthChart(Map<String,String> param);
    
    List<PieChartDto> getStrangerNumberStatistics(Map<String,String> param);
    
    List<PieChartDto> getCallPeriodStatistics(Map<String,String> param);
    
    List<PieChartDto> getCallPeriodStatisticsWithMonth(Map<String,String> param);
	
	List<CallCountDto>queryCallCountList(Map<String,Object> map);
	
	List<CallCountDto> queryCallCountListWithMonth(Map<String,Object> map);
	
	List<IntMxCallDetails> getCallDetailList(Map<String,Object> map);
	
	List<IntMxCallDetails> getAddressBookList(Map<String,Object> map);
	
	List<IntMxCallDetails> downAddressBookList(Map<String,Object> map);
	
	Long queryCallCountListCount(Map<String,Object> map);
	
	Long queryCallCountListWithMonthCount(Map<String,Object> map);
	
	Long getCallDetailListCount(Map<String,Object> map);
	
	Long getAddressBookListCount(Map<String,Object> map);
	
	MxAlipayUserInfoDto getMxAlipayUserInfo(String loanId);
	
	MxAlipayUserInfoDto getMxAlipayWealth(String reqNo);
	
	List<MxAlipayBankDto> getMxAlipayBankList(String reqNo);
	
	List<MxAlipayAddressDto> getMxAlipayAddressList(String reqNo);
	
	List<ZXPersonalLoanApplyInfo> getZXApplyInfo(Map<String,Object> map);
	Long getZXApplyInfoCount(String reqNo);
	
	List<ZXPersonalLoanOrderInfo> getZXOrderInfo(Map<String,Object> map);
	Long getZXOrderInfoCount(String reqNo);
	
	List<ZXpersonalLoanOrderDetailsInfo> getZXOrderDetailInfo(Map<String,Object> map);
	Long getZXOrderDetailInfoCount(String reqNo);
	
	CreditReportPortrait getZXBasicInfo(String cardNo);
	
	MxOperatorReportDto getMxCheckBlackInfo(String loanId);
	
	String getZXAddr(String reqNo);
	
	
	MXCheckSearchInfo getMxUserSearchInfo(String loanId);
	
	BRDeviceInfo getDeviceInfo(Map<String,Object> map);
	
	List<BRDeviceInfo> getDeviceDetailInfo(Map<String,Object> map);
	
	Long getDeviceDetailInfoCount(Map<String,Object> map);
	
	YDUserInfoDto getYDUserInfoDto(String loanId);
	
	List<YDFeatureDto> getYDFeatureDto(String loanId);
	
	YDLendBehaviorDto selectYDLendBehaviorDto(String loanId);
	
	List<YDIndustryLendBehaviorDto> selectYDIndustryLendBehaviorDto(String loanId);
	
	List<YDDeviceInfoDto> selectYDDeviceInfoDto(String loanId);
	
	YDDeviceLinkDto selectYDDeviceLinkDto(String loanId);
	
	YDDeviceLinkDto selectYDlinkUserDetail(String loanId);
	
	Long selectFraudDeviceCount(String loanId);
	
	Long selectLivingAttackCount(String loanId);
	Long selectOtherFraudDeviceCount(String loanId);
	Long selectOtherLivingAttackCount(String loanId);
	String selectYDReqNo(String loanId);
	
	String selectMXReqNo(String loanId);
	
	EdcZxPersonalNewCredit getZXNewCredit(@Param("loanId") String loanId);
	
}